using System;
using System.Globalization;
using System.Reflection;

namespace ns20
{
	internal abstract class Class167
	{
		public Func<T, object> method_0<T>(MemberInfo memberInfo_0)
		{
			PropertyInfo propertyInfo = memberInfo_0 as PropertyInfo;
			if (propertyInfo != null)
			{
				return ns20_002EClass167_002E_200B_200C_202E_200C_202A_206E_206E_202B_202E_206F_200F_200E_202C_200C_206D_206C_200C_206E_202D_206E_200C_202D_200E_206D_200D_206C_200F_202C_200F_206C_200B_202B_202E_200B_202D_206B_202E_206A_200D_200C_202E<T>(propertyInfo);
			}
			FieldInfo fieldInfo = memberInfo_0 as FieldInfo;
			if (!(fieldInfo != null))
			{
				throw new Exception("Could not create getter for {0}.".smethod_0(CultureInfo.InvariantCulture, memberInfo_0));
			}
			return ns20_002EClass167_002E_200B_200C_202E_200C_202A_206E_206E_202B_202E_206F_200F_200E_202C_200C_206D_206C_200C_206E_202D_206E_200C_202D_200E_206D_200D_206C_200F_202C_200F_206C_200B_202B_202E_200B_202D_206B_202E_206A_200D_200C_202E<T>(fieldInfo);
		}

		public Action<T, object> method_1<T>(MemberInfo memberInfo_0)
		{
			PropertyInfo propertyInfo = memberInfo_0 as PropertyInfo;
			if (propertyInfo != null)
			{
				return ns20_002EClass167_002E_206B_202C_206B_200B_202C_202E_200C_202C_200E_206B_206D_200B_202D_206A_200F_202D_206B_206D_200E_202C_206F_200D_206D_206B_206B_200D_200C_202E_206D_202A_200D_206B_202E_200F_200F_202D_206C_200C_200D_206E_202E<T>(propertyInfo);
			}
			FieldInfo fieldInfo = memberInfo_0 as FieldInfo;
			if (!(fieldInfo != null))
			{
				throw new Exception("Could not create setter for {0}.".smethod_0(CultureInfo.InvariantCulture, memberInfo_0));
			}
			return ns20_002EClass167_002E_206B_202C_206B_200B_202C_202E_200C_202C_200E_206B_206D_200B_202D_206A_200F_202D_206B_206D_200E_202C_206F_200D_206D_206B_206B_200D_200C_202E_206D_202A_200D_206B_202E_200F_200F_202D_206C_200C_200D_206E_202E<T>(fieldInfo);
		}

		public abstract Delegate3<T, object> ns20_002EClass167_002E_206A_206E_200E_202E_206E_200B_200B_200E_202C_206A_202A_202B_200C_206A_206C_206D_202B_200F_206E_200F_202C_200D_200D_202B_202B_206F_206D_206E_206D_206B_200B_206B_200B_200E_200D_202E_202A_206C_200F_202B_202E<T>(MethodBase methodBase_0);

		public abstract Func<T> ns20_002EClass167_002E_206E_206D_200F_202C_202B_206A_206E_200E_202B_206A_206F_206A_202E_202C_206E_202D_202A_202D_202B_206F_206C_202D_206C_206C_202A_206E_200B_206A_202A_202C_206B_200C_206A_206A_200B_206D_206A_206E_200E_206E_202E<T>(Type type_0);

		public abstract Func<T, object> ns20_002EClass167_002E_200B_200C_202E_200C_202A_206E_206E_202B_202E_206F_200F_200E_202C_200C_206D_206C_200C_206E_202D_206E_200C_202D_200E_206D_200D_206C_200F_202C_200F_206C_200B_202B_202E_200B_202D_206B_202E_206A_200D_200C_202E<T>(PropertyInfo propertyInfo_0);

		public abstract Func<T, object> ns20_002EClass167_002E_200B_200C_202E_200C_202A_206E_206E_202B_202E_206F_200F_200E_202C_200C_206D_206C_200C_206E_202D_206E_200C_202D_200E_206D_200D_206C_200F_202C_200F_206C_200B_202B_202E_200B_202D_206B_202E_206A_200D_200C_202E<T>(FieldInfo fieldInfo_0);

		public abstract Action<T, object> ns20_002EClass167_002E_206B_202C_206B_200B_202C_202E_200C_202C_200E_206B_206D_200B_202D_206A_200F_202D_206B_206D_200E_202C_206F_200D_206D_206B_206B_200D_200C_202E_206D_202A_200D_206B_202E_200F_200F_202D_206C_200C_200D_206E_202E<T>(FieldInfo fieldInfo_0);

		public abstract Action<T, object> ns20_002EClass167_002E_206B_202C_206B_200B_202C_202E_200C_202C_200E_206B_206D_200B_202D_206A_200F_202D_206B_206D_200E_202C_206F_200D_206D_206B_206B_200D_200C_202E_206D_202A_200D_206B_202E_200F_200F_202D_206C_200C_200D_206E_202E<T>(PropertyInfo propertyInfo_0);
	}
}
